using Baci.Net.ToolKit.ArcGISProGeoprocessor.Models;
using Baci.Net.ToolKit.ArcGISProGeoprocessor.Models.Attributes;
using Baci.Net.ToolKit.ArcGISProGeoprocessor.Models.Attributes.DomainAttributes;
using Baci.Net.ToolKit.ArcGISProGeoprocessor.Models.Enums;
using System.Collections.Generic;
using System.ComponentModel;

namespace Baci.ArcGIS._RasterAnalysisTools._SummarizeData
{
    /// <summary>
    /// <para>Summarize Raster Within</para>
    /// <para>Calculates statistics on values of a raster within the zones of another dataset.</para>
    /// <para>计算另一个数据集区域内栅格值的统计数据。</para>
    /// </summary>    
    [DisplayName("Summarize Raster Within")]
    public class SummarizeRasterWithin : AbstractGPProcess
    {
        /// <summary>
        /// 无参构造
        /// </summary>
        public SummarizeRasterWithin()
        {

        }

        /// <summary>
        /// 有参构造
        /// </summary>
        /// <param name="_inputZoneLayer">
        /// <para>Input Zone Layer</para>
        /// <para><xdoc>
        ///   <para>The input that defines the zones.</para>
        ///   <para>Both raster and feature data can be used for the zone input.</para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>定义区域的输入。</para>
        ///   <para>栅格数据和要素数据都可用于区域输入。</para>
        /// </xdoc></para>
        /// </param>
        /// <param name="_zoneField">
        /// <para>Zone Field</para>
        /// <para><xdoc>
        ///   <para>The field that defines each zone.</para>
        ///   <para>It can be an integer or a string field of the zone dataset.</para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>定义每个区域的字段。</para>
        ///   <para>它可以是区域数据集的整数或字符串字段。</para>
        /// </xdoc></para>
        /// </param>
        /// <param name="_inputRasterLayertoSummarize">
        /// <para>Input Raster Layer to Summarize</para>
        /// <para>The raster that contains the values on which to summarize a statistic.</para>
        /// <para>包含要汇总统计数据的值的栅格。</para>
        /// </param>
        /// <param name="_outputName">
        /// <para>Output Name</para>
        /// <para><xdoc>
        ///   <para>The name of the output raster service.</para>
        ///   <para>If the image service layer already exists, you will be prompted to provide another name.</para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>输出栅格服务的名称。</para>
        ///   <para>如果影像服务图层已存在，系统将提示您提供其他名称。</para>
        /// </xdoc></para>
        /// </param>
        public SummarizeRasterWithin(object _inputZoneLayer, object _zoneField, object _inputRasterLayertoSummarize, object _outputName)
        {
            this._inputZoneLayer = _inputZoneLayer;
            this._zoneField = _zoneField;
            this._inputRasterLayertoSummarize = _inputRasterLayertoSummarize;
            this._outputName = _outputName;
        }
        public override string ToolboxName => "Raster Analysis Tools";

        public override string ToolName => "Summarize Raster Within";

        public override string CallName => "ra.SummarizeRasterWithin";

        public override List<string> AcceptEnvironments => ["cellSize", "extent", "mask", "outputCoordinateSystem", "snapRaster"];

        public override object[] ParameterInfo => [_inputZoneLayer, _zoneField, _inputRasterLayertoSummarize, _outputName, _statisticType.GetGPValue(), _ignoreMissingValues.GetGPValue(), _outputRaster, _processAsMultidimensional.GetGPValue(), _percentileValue, _percentileInterpolationType.GetGPValue()];

        /// <summary>
        /// <para>Input Zone Layer</para>
        /// <para><xdoc>
        ///   <para>The input that defines the zones.</para>
        ///   <para>Both raster and feature data can be used for the zone input.</para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>定义区域的输入。</para>
        ///   <para>栅格数据和要素数据都可用于区域输入。</para>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Input Zone Layer")]
        [Description("")]
        [Option(OptionTypeEnum.Must)]
        public object _inputZoneLayer { get; set; }


        /// <summary>
        /// <para>Zone Field</para>
        /// <para><xdoc>
        ///   <para>The field that defines each zone.</para>
        ///   <para>It can be an integer or a string field of the zone dataset.</para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>定义每个区域的字段。</para>
        ///   <para>它可以是区域数据集的整数或字符串字段。</para>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Zone Field")]
        [Description("")]
        [Option(OptionTypeEnum.Must)]
        public object _zoneField { get; set; }


        /// <summary>
        /// <para>Input Raster Layer to Summarize</para>
        /// <para>The raster that contains the values on which to summarize a statistic.</para>
        /// <para>包含要汇总统计数据的值的栅格。</para>
        /// <para></para>
        /// </summary>
        [DisplayName("Input Raster Layer to Summarize")]
        [Description("")]
        [Option(OptionTypeEnum.Must)]
        public object _inputRasterLayertoSummarize { get; set; }


        /// <summary>
        /// <para>Output Name</para>
        /// <para><xdoc>
        ///   <para>The name of the output raster service.</para>
        ///   <para>If the image service layer already exists, you will be prompted to provide another name.</para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>输出栅格服务的名称。</para>
        ///   <para>如果影像服务图层已存在，系统将提示您提供其他名称。</para>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Output Name")]
        [Description("")]
        [Option(OptionTypeEnum.Must)]
        public object _outputName { get; set; }


        /// <summary>
        /// <para>Statistic Type</para>
        /// <para><xdoc>
        ///   <para>Specifies the statistic type to calculate.</para>
        ///   <para>The available options when the raster to summarize is of integer data type are Average, Majority, Maximum, Median, Minimum, Minority, Percentile, Range, Standard deviation, Sum, and Variety.</para>
        ///   <para>If the raster to summarize is of float data type, the options are Average, Maximum, Median, Minimum, Percentile, Range, Standard deviation, and Sum.</para>
        ///   <bulletList>
        ///     <bullet_item>Average—The average of all cells in the raster layer to be summarized that belong to the same zone as the output cell will be calculated. This is the default.</bullet_item><para/>
        ///     <bullet_item>Majority—The value that occurs most often of all cells in the raster layer to be summarized that belong to the same zone as the output cell will be calculated.</bullet_item><para/>
        ///     <bullet_item>Maximum—The largest value of all cells in the raster layer to be summarized that belong to the same zone as the output cell will be calculated.</bullet_item><para/>
        ///     <bullet_item>Median—The median value of all cells in the raster layer to be summarized that belong to the same zone as the output cell will be calculated.</bullet_item><para/>
        ///     <bullet_item>Minimum—The smallest value of all cells in the raster layer to be summarized that belong to the same zone as the output cell will be calculated.</bullet_item><para/>
        ///     <bullet_item>Minority—The value that occurs least often of all cells in the raster layer to be summarized that belong to the same zone as the output cell will be calculated.</bullet_item><para/>
        ///     <bullet_item>Percentile—The percentile of all cells in the value raster that belong to the same zone as the output cell will be calculated. The 90th percentile is calculated by default. You can specify other values (from 0 to 100) using the Percentile Value parameter.</bullet_item><para/>
        ///     <bullet_item>Range—The difference between the largest and smallest value of all cells in the raster layer to be summarized that belong to the same zone as the output cell will be calculated.</bullet_item><para/>
        ///     <bullet_item>Standard deviation—The standard deviation of all cells in the raster layer to be summarized that belong to the same zone as the output cell will be calculated.</bullet_item><para/>
        ///     <bullet_item>Sum—The total value of all cells in the raster layer to be summarized that belong to the same zone as the output cell will be calculated.</bullet_item><para/>
        ///     <bullet_item>Variety—The number of unique values for all cells in the raster layer to be summarized that belong to the same zone as the output cell will be calculated.</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>指定要计算的统计信息类型。</para>
        ///   <para>当要汇总的栅格为整数数据类型时，可用选项包括平均值、多数值、最大值、中位数、最小值、少数值、百分位数、范围、标准差、总和和多样性。</para>
        ///   <para>如果要汇总的栅格为浮点数据类型，则选项为平均值、最大值、中位数、最小值、百分位数、范围、标准差和总和。</para>
        ///   <bulletList>
        ///     <bullet_item>平均值—将计算要汇总的栅格图层中与输出像元属于同一区域的所有像元的平均值。这是默认设置。</bullet_item><para/>
        ///     <bullet_item>多数 - 将计算要汇总的栅格图层中与输出像元属于同一区域的所有像元中出现频率最高的值。</bullet_item><para/>
        ///     <bullet_item>最大值 - 将计算栅格图层中要汇总且与输出像元属于同一区域的所有像元的最大值。</bullet_item><para/>
        ///     <bullet_item>中位数—将计算要汇总的栅格图层中与输出像元属于同一区域的所有像元的中值。</bullet_item><para/>
        ///     <bullet_item>最小值 - 将计算要汇总的栅格图层中与输出像元属于同一区域的所有像元的最小值。</bullet_item><para/>
        ///     <bullet_item>少数 - 将计算要汇总的栅格图层中与输出像元属于同一区域的所有像元中出现频率最低的值。</bullet_item><para/>
        ///     <bullet_item>百分位数—将计算值栅格中与输出像元属于同一区域的所有像元的百分位数。默认情况下计算第 90 个百分位数。您可以使用百分位值参数指定其他值（从 0 到 100）。</bullet_item><para/>
        ///     <bullet_item>范围—将计算要汇总的栅格图层中与输出像元属于同一区域的所有像元的最大值和最小值之间的差值。</bullet_item><para/>
        ///     <bullet_item>标准差—将计算待汇总的栅格图层中与输出像元属于同一区域的所有像元的标准差。</bullet_item><para/>
        ///     <bullet_item>总和—将计算待汇总的栅格图层中与输出像元属于同一区域的所有像元的总值。</bullet_item><para/>
        ///     <bullet_item>多样性—将计算要汇总的栅格图层中与输出像元属于同一区域的所有像元的唯一值数。</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Statistic Type")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public _statisticType_value _statisticType { get; set; } = _statisticType_value._MEAN;

        public enum _statisticType_value
        {
            /// <summary>
            /// <para>Average</para>
            /// <para>Average—The average of all cells in the raster layer to be summarized that belong to the same zone as the output cell will be calculated. This is the default.</para>
            /// <para>平均值—将计算要汇总的栅格图层中与输出像元属于同一区域的所有像元的平均值。这是默认设置。</para>
            /// </summary>
            [Description("Average")]
            [GPEnumValue("MEAN")]
            _MEAN,

            /// <summary>
            /// <para>Majority</para>
            /// <para>Majority—The value that occurs most often of all cells in the raster layer to be summarized that belong to the same zone as the output cell will be calculated.</para>
            /// <para>多数 - 将计算要汇总的栅格图层中与输出像元属于同一区域的所有像元中出现频率最高的值。</para>
            /// </summary>
            [Description("Majority")]
            [GPEnumValue("MAJORITY")]
            _MAJORITY,

            /// <summary>
            /// <para>Maximum</para>
            /// <para>Maximum—The largest value of all cells in the raster layer to be summarized that belong to the same zone as the output cell will be calculated.</para>
            /// <para>最大值 - 将计算栅格图层中要汇总且与输出像元属于同一区域的所有像元的最大值。</para>
            /// </summary>
            [Description("Maximum")]
            [GPEnumValue("MAXIMUM")]
            _MAXIMUM,

            /// <summary>
            /// <para>Median</para>
            /// <para>Median—The median value of all cells in the raster layer to be summarized that belong to the same zone as the output cell will be calculated.</para>
            /// <para>中位数—将计算要汇总的栅格图层中与输出像元属于同一区域的所有像元的中值。</para>
            /// </summary>
            [Description("Median")]
            [GPEnumValue("MEDIAN")]
            _MEDIAN,

            /// <summary>
            /// <para>Minimum</para>
            /// <para>Minimum—The smallest value of all cells in the raster layer to be summarized that belong to the same zone as the output cell will be calculated.</para>
            /// <para>最小值 - 将计算要汇总的栅格图层中与输出像元属于同一区域的所有像元的最小值。</para>
            /// </summary>
            [Description("Minimum")]
            [GPEnumValue("MINIMUM")]
            _MINIMUM,

            /// <summary>
            /// <para>Minority</para>
            /// <para>Minority—The value that occurs least often of all cells in the raster layer to be summarized that belong to the same zone as the output cell will be calculated.</para>
            /// <para>少数 - 将计算要汇总的栅格图层中与输出像元属于同一区域的所有像元中出现频率最低的值。</para>
            /// </summary>
            [Description("Minority")]
            [GPEnumValue("MINORITY")]
            _MINORITY,

            /// <summary>
            /// <para>Percentile</para>
            /// <para>Percentile—The percentile of all cells in the value raster that belong to the same zone as the output cell will be calculated. The 90th percentile is calculated by default. You can specify other values (from 0 to 100) using the Percentile Value parameter.</para>
            /// <para>百分位数—将计算值栅格中与输出像元属于同一区域的所有像元的百分位数。默认情况下计算第 90 个百分位数。您可以使用百分位值参数指定其他值（从 0 到 100）。</para>
            /// </summary>
            [Description("Percentile")]
            [GPEnumValue("PERCENTILE")]
            _PERCENTILE,

            /// <summary>
            /// <para>Range</para>
            /// <para>Range—The difference between the largest and smallest value of all cells in the raster layer to be summarized that belong to the same zone as the output cell will be calculated.</para>
            /// <para>范围—将计算要汇总的栅格图层中与输出像元属于同一区域的所有像元的最大值和最小值之间的差值。</para>
            /// </summary>
            [Description("Range")]
            [GPEnumValue("RANGE")]
            _RANGE,

            /// <summary>
            /// <para>Standard deviation</para>
            /// <para>Standard deviation—The standard deviation of all cells in the raster layer to be summarized that belong to the same zone as the output cell will be calculated.</para>
            /// <para>标准差—将计算待汇总的栅格图层中与输出像元属于同一区域的所有像元的标准差。</para>
            /// </summary>
            [Description("Standard deviation")]
            [GPEnumValue("STD")]
            _STD,

            /// <summary>
            /// <para>Sum</para>
            /// <para>Sum—The total value of all cells in the raster layer to be summarized that belong to the same zone as the output cell will be calculated.</para>
            /// <para>总和—将计算待汇总的栅格图层中与输出像元属于同一区域的所有像元的总值。</para>
            /// </summary>
            [Description("Sum")]
            [GPEnumValue("SUM")]
            _SUM,

            /// <summary>
            /// <para>Variety</para>
            /// <para>Variety—The number of unique values for all cells in the raster layer to be summarized that belong to the same zone as the output cell will be calculated.</para>
            /// <para>多样性—将计算要汇总的栅格图层中与输出像元属于同一区域的所有像元的唯一值数。</para>
            /// </summary>
            [Description("Variety")]
            [GPEnumValue("VARIETY")]
            _VARIETY,

        }

        /// <summary>
        /// <para>Ignore Missing Values</para>
        /// <para><xdoc>
        ///   <para>Specifies whether missing values in the raster layer to summarize will be ignored in the results of the zones that they fall within.</para>
        ///   <bulletList>
        ///     <bullet_item>Checked—Within any particular zone, only cells that have a value in the raster layer being summarized will be used in determining the output value for that zone. Missing or NoData cells will be ignored in the statistic calculation. This is the default.</bullet_item><para/>
        ///     <bullet_item>Unchecked—Within any particular zone, if any cells in the raster layer being summarized do not have a value, they will not be ignored and their existence indicates that there is insufficient information to perform statistical calculations for all the cells in that zone. Consequently, the entire zone will receive the NoData value on the output raster.</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>指定要汇总的栅格图层中的缺失值是否在它们所属区域的结果中被忽略。</para>
        ///   <bulletList>
        ///     <bullet_item>选中 - 在任何特定区域内，只有在要汇总的栅格图层中具有值的像元才会用于确定该区域的输出值。在统计计算中，缺失或 NoData 单元格将被忽略。这是默认设置。</bullet_item><para/>
        ///     <bullet_item>未选中 - 在任何特定区域内，如果要汇总的栅格图层中的任何像元没有值，则不会忽略它们，并且它们的存在表明没有足够的信息来对该区域中的所有像元执行统计计算。因此，整个区域将接收输出栅格上的 NoData 值。</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Ignore Missing Values")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public _ignoreMissingValues_value _ignoreMissingValues { get; set; } = _ignoreMissingValues_value._true;

        public enum _ignoreMissingValues_value
        {
            /// <summary>
            /// <para>DATA</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("DATA")]
            [GPEnumValue("true")]
            _true,

            /// <summary>
            /// <para>NODATA</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("NODATA")]
            [GPEnumValue("false")]
            _false,

        }

        /// <summary>
        /// <para>Output Raster</para>
        /// <para></para>
        /// <para></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Output Raster")]
        [Description("")]
        [Option(OptionTypeEnum.derived)]
        public object _outputRaster { get; set; }


        /// <summary>
        /// <para>Process as Multidimensional</para>
        /// <para><xdoc>
        ///   <para>Specifies how the input rasters will be processed if they are multidimensional.</para>
        ///   <bulletList>
        ///     <bullet_item>Unchecked—Statistics will be calculated from the current slice of the input multidimensional dataset. This is the default.</bullet_item><para/>
        ///     <bullet_item>Checked— Statistics will be calculated for all dimensions (such as time or depth) from all slices of the multidimensional input rasters.</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>指定输入栅格为多维栅格时的处理方式。</para>
        ///   <bulletList>
        ///     <bullet_item>未选中—将根据输入多维数据集的当前剖面计算统计数据。这是默认设置。</bullet_item><para/>
        ///     <bullet_item>选中- 将计算多维输入栅格所有剖面的所有维度（例如时间或深度）的统计数据。</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Process as Multidimensional")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public _processAsMultidimensional_value _processAsMultidimensional { get; set; } = _processAsMultidimensional_value._false;

        public enum _processAsMultidimensional_value
        {
            /// <summary>
            /// <para>ALL_SLICES</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("ALL_SLICES")]
            [GPEnumValue("true")]
            _true,

            /// <summary>
            /// <para>CURRENT_SLICE</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("CURRENT_SLICE")]
            [GPEnumValue("false")]
            _false,

        }

        /// <summary>
        /// <para>Percentile Value</para>
        /// <para><xdoc>
        ///   <para>The percentile to calculate. The default is 90, indicating the 90th percentile.</para>
        ///   <para>The values can range from 0 to 100. The 0th percentile is essentially equivalent to the minimum statistic, and the 100th percentile is equivalent to maximum. A value of 50 will produce essentially the same result as the median statistic.</para>
        ///   <para>This option is only available if the Statistic Type parameter is set to Percentile.</para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>要计算的百分位数。默认值为 90，表示第 90 个百分位数。</para>
        ///   <para>这些值的范围可以从 0 到 100。第 0 个百分位数基本等于最小统计量，第 100 个百分位数等于最大值。值为 50 将产生与中位数统计量基本相同的结果。</para>
        ///   <para>仅当统计类型参数设置为百分位数时，此选项才可用。</para>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Percentile Value")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public double _percentileValue { get; set; } = 90;


        /// <summary>
        /// <para>Percentile Interpolation Type</para>
        /// <para><xdoc>
        ///   <para>Specifies the method of percentile interpolation to be used when the number of values from the input raster to be calculated are even.</para>
        ///   <bulletList>
        ///     <bullet_item>Auto-detect—If the input value raster is of integer pixel type, the Nearest method is used. If the input value raster is of floating point pixel type, the Linear method is used. This is the default.</bullet_item><para/>
        ///     <bullet_item>Nearest—The nearest available value to the desired percentile is used. In this case, the output pixel type is the same as that of the input value raster.</bullet_item><para/>
        ///     <bullet_item>Linear—The weighted average of the two surrounding values from the desired percentile is used. In this case, the output pixel type is floating point.</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>指定当要计算的输入栅格中的值数为偶数时要使用的百分位插值方法。</para>
        ///   <bulletList>
        ///     <bullet_item>自动检测 - 如果输入值栅格为整数像素类型，则使用“最近”方法。如果输入值栅格为浮点像素类型，则使用线性方法。这是默认设置。</bullet_item><para/>
        ///     <bullet_item>最近 - 使用最接近所需百分位数的可用值。在这种情况下，输出像素类型与输入值栅格的输出像素类型相同。</bullet_item><para/>
        ///     <bullet_item>线性—使用所需百分位数中两个周围值的加权平均值。在本例中，输出像素类型为浮点数。</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Percentile Interpolation Type")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public _percentileInterpolationType_value _percentileInterpolationType { get; set; } = _percentileInterpolationType_value._AUTO_DETECT;

        public enum _percentileInterpolationType_value
        {
            /// <summary>
            /// <para>Auto-detect</para>
            /// <para>Auto-detect—If the input value raster is of integer pixel type, the Nearest method is used. If the input value raster is of floating point pixel type, the Linear method is used. This is the default.</para>
            /// <para>自动检测 - 如果输入值栅格为整数像素类型，则使用“最近”方法。如果输入值栅格为浮点像素类型，则使用线性方法。这是默认设置。</para>
            /// </summary>
            [Description("Auto-detect")]
            [GPEnumValue("AUTO_DETECT")]
            _AUTO_DETECT,

            /// <summary>
            /// <para>Nearest</para>
            /// <para>Nearest—The nearest available value to the desired percentile is used. In this case, the output pixel type is the same as that of the input value raster.</para>
            /// <para>最近 - 使用最接近所需百分位数的可用值。在这种情况下，输出像素类型与输入值栅格的输出像素类型相同。</para>
            /// </summary>
            [Description("Nearest")]
            [GPEnumValue("NEAREST")]
            _NEAREST,

            /// <summary>
            /// <para>Linear</para>
            /// <para>Linear—The weighted average of the two surrounding values from the desired percentile is used. In this case, the output pixel type is floating point.</para>
            /// <para>线性—使用所需百分位数中两个周围值的加权平均值。在本例中，输出像素类型为浮点数。</para>
            /// </summary>
            [Description("Linear")]
            [GPEnumValue("LINEAR")]
            _LINEAR,

        }

        public SummarizeRasterWithin SetEnv(object cellSize = null, object extent = null, object mask = null, object outputCoordinateSystem = null, object snapRaster = null)
        {
            base.SetEnv(cellSize: cellSize, extent: extent, mask: mask, outputCoordinateSystem: outputCoordinateSystem, snapRaster: snapRaster);
            return this;
        }

    }

}